A common approach utilized in advanced industrial control processes is Model-based Predictive Control, also known as “MPC”. MPC involves the use of a controller that utilizes a mathematical model of a process to predict the future behavior of the control system and then formulates the control problem as a constrained optimization problem. The accuracy of the internal process model is crucial to the performance of a controller based on the solution of a constrained optimization problem.
MPC is thus a standard control and optimization technique utilized in process control such as, for example, power train control applications in diesel engines, turbocharger control solutions, and so forth. The acronym “MPC” therefore generally refers to a class of algorithms, which utilize an internal mathematical model of a controlled system and an optimization algorithm to compute optimal future control actions for system inputs and optimal trajectories at system outputs, for example, control actions for automotive system inputs.
Explicit MPC-based approaches require a large amount of data that is descriptive of a resulting control law. Consequently, a large amount of data is required to be transferred to and stored in an embedded system. Typically, for any change associated with plant models, weightings or other parameters in a cost function of an optimization problem, the solution must be recalculated and a set of data, which describe the solution, regenerated. The resulting set of data may then be redeployed to an embedded system or other types of computer platforms. Note that the term “platform” as utilized herein may also refer to a “real-time target platform” or a “real-time platform” or a “real-time target”.
Currently, the procedure for updating control law information requires recompilation of a controller code along with a solution data set and redeployment of the compiled controller code. Frequent re-tuning of the controller during a development phase is always a necessity and presents a problem; hence, re-compilation and redeployment of the controller consumes a great deal of time during the development and test phases. For example, currently, if there are required ten tuning iterations, the controller needs to be recompiled ten times.
FIG. 1 illustrates a prior art update process diagram for an MPC-based controller or explicit MPC based controller 100 residing on a platform 145 in which tuning parameters of a controller (not shown in FIG. 1) are updated. FIG. 1 depicts the use of an application A1 107 associated with the update process for MPC based controller or explicit MPC-based controller 100. The application 107 (A1) can be employed to modify data sets for use in generating a controller data set 109 (DS1) that defines control laws, models, and parameters for the bank of observers. The newly generated data set(s) 109 can be embedded in association with a controller template code 110. The controller template code 110 can be compiled with specific data set(s) 109 via a compiler 120 and the resulting code compiled with data sets 125 may be further fed as input to an ECU (Electronic Control Unit) 145 via a communications channel 135 by terminating the test at an engine associated with an engine test cell 147. The resulting code may be deployed in the context of a software application in the loop and/or actual hardware in the loop testing platforms.
Such a prior art approach provides a fixed structure of the source code and is referred to as a “template”; however, such an approach does not free a practitioner from recompiling the controller code for a controller residing on platform 145 at each change of the tuning parameters or modifications of plant models. This hinders the possibility of tuning the controller residing on platform 145 seamlessly in a manner that the practitioner can take advantage of simultaneously tune parameters and monitor the changed behavior of the closed loop system 140.
Based on the foregoing, it is believed that a need exists for an improved method and system for enabling seamless tuning of controllers such as, for example, an explicit MPC controller or a standard MPC controller. A need also exists for an improved method and system for updating the tuning parameters of controllers without repetitive compilation of the controller code, as described in greater detail herein.